package com.cskaoyan.javase.oop1._7exercise._1pvz;

/**
 * 植物类
 * @since 09:30
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Plant {
    // 属性
    String name;
    int hp;
    // 攻击力
    int damage;
    int price;

    // 持有僵尸对象的引用
    Zombie plantZ;

    // 构造器
    public Plant() {
    }

    public Plant(String name, int hp, int damage, int price) {
        this.name = name;
        this.hp = hp;
        this.damage = damage;
        this.price = price;
    }

    // 行为
    public void attack() {
        // 这里希望打印一句话,打印我正在攻击"xxx"僵尸
        /*
            如何得知攻击的僵尸是谁呢?
            可以将僵尸的名字或者僵尸对象作为方法的形参传入方法
            但是因为僵尸和植物的交互很频繁,如果每个方法都需要传入一个对象就太麻烦
            为了简便,于是干脆将一个僵尸对象,作为植物类的成员变量
            持有僵尸对象的引用,这样更方便对象之间的交互
         */
        System.out.println(name + "正在攻击" + plantZ.name);
    }

    public void beAttacked() {
        System.out.println(name + "正在被" + plantZ.name + "攻击!");
        System.out.println("目前," + name + "还剩余" + (hp - plantZ.damage) + "点血量!");
    }
}
